package cliente.pagina.contenido.ExamenAutoexamen;

import cliente.pagina.contenido.*;
import cliente.pagina.contenido.ExamenAutoexamen.Alumno.ContenidoGestionAlumno;
import cliente.pagina.contenido.ExamenAutoexamen.Docente.ContenidoGestionDocente;
import comun.constantes.*;
import cliente.pagina.*;
import comun.constantes.RECURSOS;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

  abstract public class ContenidoExamenAutoexamen  extends VistaContenido {

  private ContenidoExamenAutoexamen contenidoExamenAutoexamen;
  private boolean tienePermisoGestionAlumnoEx;
  private boolean tienePermisoGestionDocenteEx;
  
  public ContenidoExamenAutoexamen() {
  }

  public ContenidoExamenAutoexamen(Pagina pagina) {
    super(pagina);
  }
   
  public String getHTMLVista() {
	  {
	    try {
	          String html = "       <h1>"+this.getTitulo()+"</h1>\n";
	          html+= this.getContenidoExamenAutoexamen().getHTMLVista();
	          return html;
	    }
	    catch (Exception ex) {
	      ex.printStackTrace();
	      return  comun.MensajeDeError.ERROR_EN_LA_GENERACION_DE_LA_PAGINA;
	    }
	  }
	 }

//	 redefino el metodo abstracto de Vista contenido
	protected String getNombrePagina(){
	  return "examenautoexamen.jsp";
	}

//	 redefino el metodo abstracto de Vista contenido
	public String getTituloLink(){
	  return "\"Evaluaciones\">Evaluaciones";
	}
	
	public void setPagina(Pagina pagina){
	    super.setPagina(pagina);
	    String permiso;
        boolean permEx,permAutoex,permCuest;
	    permiso = this.getPagina().obtenerPermisoRecurso(RECURSOS.GESTION_EXAMEN);
	    permEx=(permiso.compareTo(TIPO_PERMISOS.ESCRITURA)==0) || (permiso.compareTo(TIPO_PERMISOS.LECTURA)==0);
	    permiso = this.getPagina().obtenerPermisoRecurso(RECURSOS.GESTION_AUTOEXAMEN);
	    permAutoex=(permiso.compareTo(TIPO_PERMISOS.ESCRITURA)==0) || (permiso.compareTo(TIPO_PERMISOS.LECTURA)==0);
	    permiso = this.getPagina().obtenerPermisoRecurso(RECURSOS.GESTION_CUESTIONARIO);
	    permCuest=(permiso.compareTo(TIPO_PERMISOS.ESCRITURA)==0) || (permiso.compareTo(TIPO_PERMISOS.LECTURA)==0);
	    this.setTienePermisoGestionDocenteEx(permEx || permAutoex || permCuest); 
        permiso = this.getPagina().obtenerPermisoRecurso(RECURSOS.REALIZAR_EXAMEN);
	    permEx=(permiso.compareTo(TIPO_PERMISOS.ESCRITURA)==0) || (permiso.compareTo(TIPO_PERMISOS.LECTURA)==0);
	    permiso = this.getPagina().obtenerPermisoRecurso(RECURSOS.REALIZAR_AUTOEXAMEN);
	    permAutoex=(permiso.compareTo(TIPO_PERMISOS.ESCRITURA)==0) || (permiso.compareTo(TIPO_PERMISOS.LECTURA)==0);
	    permiso = this.getPagina().obtenerPermisoRecurso(RECURSOS.REALIZAR_CUESTIONARIO);
	    permCuest=(permiso.compareTo(TIPO_PERMISOS.ESCRITURA)==0) || (permiso.compareTo(TIPO_PERMISOS.LECTURA)==0);
	    this.setTienePermisoGestionAlumnoEx(permEx || permAutoex || permCuest); 
	    if(isTienePermisoGestionAlumnoEx())
	      this.setContenidoExamenAutoexamen(new ContenidoGestionAlumno(pagina));
	    if(isTienePermisoGestionDocenteEx())
		      this.setContenidoExamenAutoexamen(new ContenidoGestionDocente(pagina));
	    if (this.getContenidoExamenAutoexamen()!=null)
	      pagina.setVistaContenido(this.getContenidoExamenAutoexamen());
	  }

	public void setTienePermisoGestionDocenteEx(boolean tienePermisoGestionDocenteEx) {
	    this.tienePermisoGestionDocenteEx = tienePermisoGestionDocenteEx;
	  }
	  public boolean isTienePermisoGestionDocenteEx() {
	    return tienePermisoGestionDocenteEx;
	  }

	public void setTienePermisoGestionAlumnoEx(boolean tienePermisoGestionAlumnoEx) {
	    this.tienePermisoGestionAlumnoEx = tienePermisoGestionAlumnoEx;
	  }
	public boolean isTienePermisoGestionAlumnoEx() {
	    return tienePermisoGestionAlumnoEx;
	  }

	public ContenidoExamenAutoexamen getContenidoExamenAutoexamen() {
	    return contenidoExamenAutoexamen;
	  }

	public void setContenidoExamenAutoexamen(ContenidoExamenAutoexamen contenidoExamenAutoexamen) {
	    this.contenidoExamenAutoexamen = contenidoExamenAutoexamen;
	  }
}